REST API fetch 시 값이 null로 넘어온 경우 - key 일치 문제
✒️ 2025-05-28 13:16 내용 수정
-
에러가 난 상황 : 교재를 보고 실습을 진행하던 중 JSON 데이터를 Controller로 넘겨줄 때 들어온 값에서 Long 자료형의 id들이 null로 들어왔다.
-
에러 사진
-
각 input에서 존재하는 값으로 만든 객체와 JSON으로 변환한 내용은 잘 출력되었다.
-
하지만 Controller의 Service에서 값을 확인해보니 articleId가 null로 들어왔다.
-
왜 하필
articleId만 null이 들어올까 조금 생각해보다가 JPA와 REST API로 댓글 기능 만들기#2-2. 댓글 REST API - POST 요청에서CommentDto에@JsonProperty("article_id")를 설정했던 것이 떠올라 comment 객체를 만들 때articleId대신article_id로 작성했더니 해결되었다.
- 결국 데이터를 보낼 때
article_id가 아닌articleId로 보내고 싶다면CommentDto의@JsonProperty("article_id")설정을 제거해야 한다.
package com.example.demo.DTO;
import com.example.demo.entity.Comment;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CommentDto {
private Long id; // 댓글 id
private Long articleId; // 게시글 id // @JsonProperty("article_id") 제거
private String nickname; // 작성자
private String body; // 내용
// 객체 생성 없이 호출 가능한 정적 메소드로 생성
public static CommentDto createCommentDto(Comment comment) {
return new CommentDto(
comment.getId(),
comment.getArticle().getId(),
comment.getNickname(),
comment.getBody()
);
}
}